<?
class helpers{
	
	function combo_us($conn, $tabla, $style='', $order='id', $nombre='', $id='', $onchange){
		$q = "SELECT * FROM $tabla ORDER BY $order";
		$r = $conn->Execute($q);
		$nombre = (empty($nombre)? $tabla : $nombre);
		$id = (empty($id)? $tabla : $id);
		$combo = "<select onchange=\"$onchange\" name=\"$nombre\" id=\"$id\"";
		$combo.= (!empty($style))? "class=\"$style\"" : "";
		$combo.= ">\n";
		$combo.="<option value=\"0\">Seleccione</option>\n";
		while(!$r->EOF){
			$id = $r->fields['id'];
			$descripcion = $r->fields['nombre'] ." ".$r->fields['apellido'];
			if($id == $id_selected)
				$combo.="<option value=\"$id\" selected=\"selected\">$descripcion</option>\n";
			else
				$combo.="<option value=\"$id\">$descripcion</option>\n";
			$r->movenext();
		}
		$combo.="</select>\n";
		return $combo;
	}
	
	function xmlCombo($colObjeto, 
									$id_seleccionado='', 
									$nombre='', 
									$id='', 
									$style='', 
									$onchange='',
									$descValor = 'id',
									$descDescripcion = 'descripcion',
									$union=false,
									$tamanoDesc=''){
		$xml = new DomDocument();
		$nodoSelect = $xml->createElement('select');
		if(!empty($nombre))
			$nodoSelect->setAttribute('name', $nombre);
		if(!empty($id))
			$nodoSelect->setAttribute('id', $id);
		if(!empty($style))
			$nodoSelect->setAttribute('style', $style);
		if(!empty($onchange))
			$nodoSelect->setAttribute('onchange', $onchange);
		$nodoOption = $xml->createElement('option');
		$nodoOption->setAttribute('value', 0);
		$nodoOption->appendChild($xml->createTextNode('Seleccione'));
		$nodoSelect->appendChild($nodoOption);
		if(is_array($colObjeto)){
			foreach($colObjeto as $objeto){
				$nodoOption = $xml->createElement('option');
				$nodoOption->setAttribute('value', $objeto->$descValor);
				if($union)
					$descripcion = $objeto->$descValor ." - ". $objeto->$descDescripcion;
				else
					$descripcion = $objeto->$descDescripcion;
				if(!empty($tamanoDesc) && (strlen($descripcion) > $tamanoDesc))
					$descripcion = substr($descripcion, 0, $tamanoDesc)."(...)";
				$nodoTextoDescripcion = $xml->createTextNode($descripcion);
				$nodoOption->appendChild($nodoTextoDescripcion);
				if($objeto->$descValor == $id_seleccionado)
					$nodoOption->setAttribute('selected', 'selected');
				$nodoSelect->appendChild($nodoOption);
			}
		}
		return $nodoSelect;
	}
		
	function combogrid($obj, $posicion, $id = 'id', $descripcion='descripcion', $textoSeleccion='Seleccionar..'){
			echo "mygrid.getCombo($posicion).put('0','".$textoSeleccion."');";
		foreach($obj as $objeto){
			 echo "mygrid.getCombo($posicion).put('".$objeto->$id."','".$objeto->$descripcion."');";
		}
		
	
	}
	
	function combo($conn, 
								$tabla, 
								$id_selected='', 
								$style='', 
								$order='id', 
								$nombre='',
								$Campo1='', 
								$Campo2='', 
								$id='', 
								$atributo='',
								$sql='',
								$onchange='',
								$Seleccione='',
								$SeleccioneDesc='Seleccione'){
		$q = empty($sql) ? "SELECT * FROM $tabla ORDER BY $order" : $sql;
		//echo $q;
		$r = $conn->Execute($q);
		$nombre = empty($nombre)? $tabla : $nombre;
		$id = empty($id) ? $nombre : $id;
		$combo = "<select onChange=\"$onchange\" name=\"$nombre\" id=\"$id\"";
		$combo.= (!empty($atributo))? "$atributo" : "";
		$combo.= (!empty($style))? " style=\"$style\"" : "";
		$combo.= ">\n";
		if(!empty($Seleccione)){ $combo.="<option value=\"-1\">$SeleccioneDesc</option>\n";}
		//die($combo);
		while(!$r->EOF){
			$id = $r->fields[$Campo1];
			$descripcion = utf8_decode($r->fields[$Campo2]);
			//$descripcion = $r->fields[$Campo2];
			if($id == $id_selected)
				$combo.="<option value=\"$id\" selected=\"selected\">$descripcion</option>\n";
			else
				$combo.="<option value=\"$id\">$descripcion</option>\n";
			$r->movenext();
		}
		$combo.="</select>\n";
		return $combo;
	}
}	
?>